%----------------------------------------------------------------------------
%版本历史
%2025/8/20  v3.2 by LQW
%2024/4/4  v3.1 by LQW
%2018/5/5  v2.x by Dong
%2017/4/23 v1.x by XJ

%----------------------------------------------------------------------------

%% 毕业论文的页面边距
%\usepackage[left=3cm,right=2cm,top=2.5cm,bottom=2.5cm]{geometry}
\usepackage[left=1.5cm,right=1.5cm,top=2.5cm,bottom=2.5cm]{geometry}

%----------------------------------------------------------------------------
%% 行距为1.5倍
\usepackage{setspace}
\onehalfspacing  % 1.5倍行距（作用于全文）

%----------------------------------------------------------------------------
%% 使得正文字体大小为小四号
\usepackage[fontsize=12pt]{fontsize}

%----------------------------------------------------------------------------
%% fontspec 是一个专为 XeLaTeX 和 LuaLaTeX 设计的宏包，用于简化字体的选择和设置。xunicode 是一个与 Unicode 字符集相关的宏包，主要用于扩展 LaTeX 的字符支持。它提供了一些额外的命令来处理 Unicode 字符，使得在 XeLaTeX 和 LuaLaTeX 中使用 Unicode 字符更加方便。通常，xunicode 会与 fontspec 一起使用。
\usepackage{fontspec,xunicode}

%----------------------------------------------------------------------------
%----------------------------------------------------------------------------
%% ctex 提供了全面的中文排版支持
\usepackage[heading]{ctex}

% 定义 \songchu 为“伪粗宋体”
\setCJKfamilyfont{zhsongchu}[AutoFakeBold=3.0]{SimSun}
\newcommand{\songchu}{\CJKfamily{zhsongchu}}

% 定义 \kaichu 为“伪粗楷体”
\setCJKfamilyfont{zhkaichu}[AutoFakeBold=3.0]{KaiTi}
\newcommand{\kaichu}{\CJKfamily{zhkaichu}}

% 如何避免给目录两字加粗？
% \ctexset{
%     sansfont = SimHei,
%     sansfontoptions = {BoldFont=SimHei}
% }

%----------------------------------------------------------------------------
%% 数学符号
\usepackage{amssymb}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage{amsfonts}

%----------------------------------------------------------------------------
%% 在 verbatim 环境中的所有字符都会被原样输出
\usepackage{verbatim}

%----------------------------------------------------------------------------
%% [usenames] 选项使得你可以使用预定义的颜色名称
\usepackage[usenames]{color}

%----------------------------------------------------------------------------
%% color 宏包的扩展版本，提供了更多的颜色选项和更强大的功能
%% [dvipsnames] 选项提供了一组更大的预定义颜色名称
\usepackage{xcolor}

%----------------------------------------------------------------------------
%% 使文档中每个章节或段落的第一个段落进行首行缩进
\usepackage{indentfirst}

%----------------------------------------------------------------------------
%% 在表格中创建跨越多行的单元格
\usepackage{multirow}

%----------------------------------------------------------------------------
%% 创建多列文本布局，创建类似报纸或杂志的多列排版效果
\usepackage{multicol}

%----------------------------------------------------------------------------
%% 用于处理图像，插入、缩放、旋转以及调整图像在文档中的位置
\usepackage{graphicx}

%----------------------------------------------------------------------------
%% 用于在数学模式下生成粗体符号，例如 \bm{\alpha} 会生成一个粗体的alpha
\usepackage{bm}

%----------------------------------------------------------------------------
%% 创建更复杂的表格结构，提供了更多的列类型选项和对齐方式
\usepackage{array}

%----------------------------------------------------------------------------
%% 用于创建高质量的矢量图形，参考手册有1300页
\usepackage{tikz}
\usetikzlibrary{graphs}

%----------------------------------------------------------------------------
%% 用于创建高质量的表格
\usepackage{booktabs}

%----------------------------------------------------------------------------
%% 使用\begin{python} \end{python}高亮显示Python代码
\usepackage{pythonhighlight}

%----------------------------------------------------------------------------
%% 目录里超链接的红色方框不显示
\usepackage[hidelinks]{hyperref}
%\usepackage{hyperref}
  
%----------------------------------------------------------------------------
%% 算法环境
\usepackage{algorithm}
%\usepackage{algorithmic}
\usepackage[noend]{algpseudocode}

%----------------------------------------------------------------------------
%% listings 是一个非常强大的 LaTeX 宏包，用于在文档中插入和格式化源代码。它提供了丰富的功能来高亮显示各种编程语言的语法，并且可以自定义代码的外观。
\usepackage{listings}
\usepackage{color}

% 设置列表的样式
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92} %背景颜色为淡土色
%\definecolor{backcolour}{rgb}{1,1,1} %背景颜色为白色

\lstdefinestyle{mystyle}{
    backgroundcolor=\color{backcolour},   
    commentstyle=\color{codegreen},
    keywordstyle=\color{magenta},
    numberstyle=\tiny\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\ttfamily\footnotesize,
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}

\lstset{style=mystyle}

%----------------------------------------------------------------------------
%设置字号
\newcommand{\chuhao}{\fontsize{42pt}{\baselineskip}\selectfont}    
%初号
\newcommand{\xiaochuhao}{\fontsize{36pt}{\baselineskip}\selectfont} 
%小初号 
\newcommand{\yihao}{\fontsize{26pt}{\baselineskip}\selectfont}     
%一号
\newcommand{\xiaoyihao}{\fontsize{24pt}{\baselineskip}\selectfont}     
%小一号 
\newcommand{\erhao}{\fontsize{22pt}{\baselineskip}\selectfont}      
%二号
\newcommand{\xiaoerhao}{\fontsize{18pt}{\baselineskip}\selectfont}  
%小二号 
\newcommand{\sanhao}{\fontsize{16pt}{\baselineskip}\selectfont}  
%三号
\newcommand{\xiaosanhao}{\fontsize{15pt}{\baselineskip}\selectfont} 
 %小三号
\newcommand{\sihao}{\fontsize{14pt}{\baselineskip}\selectfont}
%四号 
\newcommand{\xiaosihao}{\fontsize{12pt}{\baselineskip}\selectfont}  
%小四号 
\newcommand{\wuhao}{\fontsize{10.5pt}{\baselineskip}\selectfont}    
%五号
\newcommand{\xiaowuhao}{\fontsize{9pt}{\baselineskip}\selectfont}   
%小五号 
\newcommand{\liuhao}{\fontsize{7.5pt}{\baselineskip}\selectfont}  
%六号  
\newcommand{\qihao}{\fontsize{5.5pt}{\baselineskip}\selectfont}    
%七号


%----------------------------------------------------------------------------
%----------------------------------------------------------------------------
%% titletoc 宏包用于自定义目录（Table of Contents, TOC）、列表（List of Figures, List of Tables）等的格式。它提供了非常灵活的选项来控制目录项的外观，包括缩进、间距、字体等。
\usepackage{titletoc}

% 自定义目录条目格式
 \titlecontents{section}
     [0em] % 左缩进
     {\small\bfseries} % 整体样式
     {\thecontentslabel. \ } % 带编号（如 1. 引言）
     {} % 无编号章节
     {\titlerule*[4pt]{.}\contentspage} % 页码前加点线

 \titlecontents{subsection}
     [2em] % 子节缩进 2em
     {\small}
     {\thecontentslabel\ }
     {}
     {\contentspage}

%----------------------------------------------------------------------------
%三级标题编号中，略去一级和二级编号
\setcounter{secnumdepth}{3}
\renewcommand{\thesubsubsection}{\arabic{subsubsection}.}

%----------------------------------------------------------------------------
%一级、二级、三级标题的字体和大小（新版ctex）
 \ctexset{
     section = {
         format    = \heiti \xiaosanhao,
         number    = \chinese{section}、,
         aftername = \hspace{-0.1cm}, % 调整编号与标题间距
     }
 }

 \ctexset{
     subsection = {
         format    = \heiti \sihao,
         number    = （\chinese{subsection}）,
         aftername = {\hspace{-0.1cm}}, % 调整编号与标题间距
     }
 }

 \ctexset{
     subsubsection = {
         format    = \heiti \xiaosihao,
         number    = \arabic{subsubsection}.,
         aftername = \hspace{0.2cm}, % 调整编号与标题间距
     }
 }

 %----------------------------------------------------------------------------
% 摘要、目录、参考文献、图、表的名称修改为中文，并定义字体和大小
\renewcommand{\abstractname}{\heiti\xiaosanhao\centerline{摘~~~~要}}
\renewcommand{\contentsname}{\heiti\xiaosanhao\centerline{目~~~~录}}
\renewcommand{\refname}{\heiti\xiaosanhao\centerline{参考文献}}
\renewcommand{\appendixname}{\heiti\xiaosanhao\centerline{附~~~~录}}
\renewcommand{\figurename}{\songti\wuhao 图}
\renewcommand{\tablename}{\songti\wuhao 表}

%----------------------------------------------------------------------------
% 定稿的目录中只需要出现一级和二级标题，把3改成2
\setcounter{tocdepth}{3} 

\usepackage{tocloft}

%目录中一级标题与页码之间加点
\renewcommand\cftsecdotsep{\cftdotsep}
\renewcommand\cftsecleader{\cftdotfill{\cftsecdotsep}}

%一级标题与页码之间加点
\renewcommand\cftsecfont{\songti\xiaosihao}
\renewcommand\cftsubsecfont{\songti\xiaosihao}


% 目录中一级、二级、三级标题与前面的数字编号之间的距离
\setlength{\cftsecnumwidth}{1.2em}      % 一级标题
\setlength{\cftsubsecnumwidth}{1.2em}     % 二级标题
\setlength{\cftsubsubsecnumwidth}{1.2em}  % 三级标题


%----------------------------------------------------------------------------
%----------------------------------------------------------------------------
%% 设置页眉、页脚以及页码的位置和样式
\usepackage{fancyhdr}

%----------------------------------------------------------------------------
% 在目录页加页眉
\fancypagestyle{plain}{
\fancyhf{} % 清空页眉页脚格式
\fancyhead[C]{\wuhao\songti 上海立信会计金融学院普通本科生毕业论文（设计）\vspace{0.2cm}}
\fancyfoot[C]{\wuhao\rm\thepage}
}

%----------------------------------------------------------------------------
%页眉页码设置
\pagestyle{fancy}
%\setlength{\headheight}{15pt}

\setlength{\headheight}{20.20pt}

\lhead{}
\chead{\wuhao\songti 上海立信会计金融学院普通本科生毕业论文（设计）\vspace{0.2cm}}
\rhead{}
\lfoot{}
\cfoot{\wuhao\rm\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0.5pt}

%----------------------------------------------------------------------------
%参考文献上标引用
\newcommand{\supercite}[1]{\textsuperscript{\cite{#1}}}
%在正文中使用 \supercite{refname} 就可以得到上标的引用效果。


%----------------------------------------------------------------------------
%% appendix 宏包用于管理和格式化附录部分。它可以自动处理附录的编号、标题样式，并且可以自定义附录的格式。
\usepackage{appendix} 


%----------------------------------------------------------------------------
%% url 宏包用于在 LaTeX 文档中正确地显示 URL 和电子邮件地址
\usepackage{url}


